<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const input = [-12, 11, -13, -5, 6, -7, 5, -3, -6]
    /*  将负数放数组前面，正数放数组后面
        使用i，j，用i，j来遍历数组，两个一起走，j在正数位置停留，i继续走知道在负数位置停留
        代码逻辑：(如果input[j]<0,i，j一直往后走，直到input[i]>0,j停留，i继续往后走，
        直到input[i]<0,然后相互换位置，因为i在j前面，换了位置之后，input[j+1]肯定是正数，所有j+1，
         i则继续往前走，直到找到input[i]<0,如此循环【第一个位置的数值不需要，因此需要排除i，j在同一个位置的情况】) */
    let i = 0, j = 0;
    for (i; i < input.length; i++) {
      if (input[i] < 0) {
        if (input[i] !== input[j]) {
          [input[i], input[j]] = [input[j], input[i]];
        }
        j++;
      }
    }
    console.log(input);//
  </script>
</body>

</html>